﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Xml;
using System.IO;

namespace MyMusicCollection.Model
{
	class DiscogsReader
	{
		private string mAPIKey = "437612fdee";

		//Får tillbaka xmldata från ett sökord
		public XmlTextReader GetSearchResponse(string aQuery, string aType)
		{
			string adress = "http://www.discogs.com/search?type=" + aType + "&q=" + aQuery + "&f=xml&api_key=" + mAPIKey;

			var request = WebRequest.Create(adress) as HttpWebRequest;

			//Sätter rätt inställningar för requesten
			request.UserAgent = "MyMusicCollection";
			request.Headers.Add("Accept-Encoding", "gzip");

			var response = request.GetResponse() as HttpWebResponse;

			if (request.HaveResponse == true && response != null)
			{
				XmlTextReader xmlReader = new XmlTextReader(response.GetResponseStream());
				return xmlReader;
			}

			throw new Exception("Fel när datan skulle hämtas.");
		}

		//Får tillbaka xmldata från en artistlänk
		public XmlTextReader GetArtistResponse(string aUri)
		{
			string adress = aUri + "?f=xml&api_key=" + mAPIKey;

			var request = WebRequest.Create(adress) as HttpWebRequest;

			//Sätter rätt inställningar för requesten
			request.UserAgent = "MyMusicCollection";
			request.Headers.Add("Accept-Encoding", "gzip");

			var response = request.GetResponse() as HttpWebResponse;

			if (request.HaveResponse == true && response != null)
			{
				XmlTextReader xmlReader = new XmlTextReader(response.GetResponseStream());
				return xmlReader;
			}

			throw new Exception("Fel när datan skulle hämtas.");
		}

		//Får tillbaka xmldata från en releaselänk
		public XmlTextReader GetAlbumResponse(string aID)
		{
			string adress = "http://www.discogs.com/release/" + aID + "?f=xml&api_key=" + mAPIKey;

			var request = WebRequest.Create(adress) as HttpWebRequest;

			//Sätter rätt inställningar för requesten
			request.UserAgent = "MyMusicCollection";
			request.Headers.Add("Accept-Encoding", "gzip");

			var response = request.GetResponse() as HttpWebResponse;

			if (request.HaveResponse == true && response != null)
			{
				XmlTextReader xmlReader = new XmlTextReader(response.GetResponseStream());
				return xmlReader;
			}

			throw new Exception("Fel när datan skulle hämtas.");
		}
	}
}
